﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace FrontEndPlus.Módulos.RRHH
{
    public partial class wbfrm_Carrera_Profesional : System.Web.UI.Page
    {
        #region Variables

        private WCF_Gimnasio.cls_Carrera_Profesional _carreraProfesional = new WCF_Gimnasio.cls_Carrera_Profesional();

        private string _mensajeError = string.Empty;

        #endregion

        #region Metodos

        private void CargarDatos()
        {
            using (WCF_Gimnasio.ServiceClient servicio = new WCF_Gimnasio.ServiceClient())
            {
                gv_carrera_Profesional.DataSource = servicio.Listar(1, _carreraProfesional);
                gv_carrera_Profesional.DataBind();
            }
        }

        private void CrearObjeto()
        {
            _carreraProfesional.IdCarreraProfesional = Convert.ToInt32(Session["IdObjeto"]);

            using (WCF_Gimnasio.ServiceClient servicio = new WCF_Gimnasio.ServiceClient())
            {
                _carreraProfesional = (WCF_Gimnasio.cls_Carrera_Profesional)servicio.TraerObjeto(_carreraProfesional);
            }

            if (_carreraProfesional != null)
            {
                txt_actualizacion_Id_Carrera_Profesional.Text = _carreraProfesional.IdCarreraProfesional.ToString();
                txt_actualizacion_Descripcion_Posgrado.Text = _carreraProfesional.DescripcionPosgrado;

                foreach (ListItem item in ddl_tipo_Buscar.Items)
                {
                    if (item.Text == _carreraProfesional.PorcentajeAumento.ToString())
                    {
                        item.Selected = true;
                    }
                }

                rdobtn_actualizacion_Estado.Checked = ((_carreraProfesional.IdEstado == 1) ? true : false);
            }
        }

        private void TipoBusqueda()
        {
            var valor = 1;
            int.TryParse(ddl_tipo_Buscar.SelectedItem.Value, out valor);

            if (valor == 1)
            {
                if (Convert.ToInt32(txt_busqueda.Text) < 0)
                {
                    _carreraProfesional.Filtros[0] = txt_busqueda.Text;
                    _carreraProfesional.Filtros[1] = "Ft";
                }
            }

            else if (valor == 2)
            {
                _carreraProfesional.Filtros[0] = "0";
                _carreraProfesional.Filtros[1] = txt_busqueda.Text;
            }

            ResultadoBusqueda();
        }

        private void ResultadoBusqueda()
        {
            using (WCF_Gimnasio.ServiceClient servicio = new WCF_Gimnasio.ServiceClient())
            {
                gv_carrera_Profesional.DataSource = servicio.Listar(2, _carreraProfesional);
                gv_carrera_Profesional.DataBind();
            }
        }

        private void VerificarProceso(string mensajeError)
        {
            if (string.IsNullOrEmpty(mensajeError) && string.IsNullOrWhiteSpace(mensajeError) && mensajeError == "")
            {
                string script = "<script type='text/javascript'> smoke.alert('Se ha realizado el proceso correctamenteo.', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
            }

            else
            {
                string script = "<script type='text/javascript'> smoke.alert('No se pudo realizar el proceso solicitado.', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
            }
        }


        #endregion

        #region Eventos

        protected void Page_Load(object sender, EventArgs e)
        {
            _carreraProfesional.IdUsuarioInicioSeccion = Convert.ToInt32(HttpContext.Current.Session["idUsuario"].ToString());
            _carreraProfesional.Filtros = new string[2];

            if (!IsPostBack)
            {
                CargarDatos();
            }
        }

        protected void txt_busqueda_TextChanged(object sender, EventArgs e)
        {
            if (gv_carrera_Profesional.Rows.Count != 0)
            {
                if (!string.IsNullOrEmpty(txt_busqueda.Text) || !string.IsNullOrWhiteSpace(txt_busqueda.Text))
                {
                    try
                    {
                        TipoBusqueda();
                    }

                    catch (Exception)
                    {
                        string script = "<script type='text/javascript'> smoke.alert('Valor no permitido.', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                        ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                    }
                }

                else
                {
                    CargarDatos();
                }
            }
        }

        protected void gv_carrera_Profesional_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            gv_carrera_Profesional.PageIndex = e.NewPageIndex;

            CargarDatos();
        }

        protected void imgbtn_actualizacion_Click(object sender, ImageClickEventArgs e)
        {
            if (Session["IdObjeto"] != null)
            {
                Session["TipoOperacion"] = false;

                CrearObjeto();

                mpe_actualizacion.Show();
            }

            else
            {
                string script = "<script type='text/javascript'> smoke.alert('Debe seleccionar un registro.', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
            }
        }

        protected void imgbtn_insertar_Click(object sender, ImageClickEventArgs e)
        {
            Session["TipoOperacion"] = true;

            txt_insertar_Id_Carrera_Profesional.Text = (gv_carrera_Profesional.Rows.Count + 1).ToString();

            txt_insertar_Descripcion_Posgrado.Text = string.Empty;
            ddl_tipo_Buscar.SelectedIndex = -1;
            rdobtn_insertar_Estado.Checked = true;

            mpe_insertar.Show();
        }

        protected void gv_carrera_Profesional_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (gv_carrera_Profesional.Rows.Count != 0)
            {
                if (e.CommandName == "Seleccionar" || e.CommandName == "Select")
                {
                    var index = gv_carrera_Profesional.Rows[Convert.ToInt32(e.CommandArgument)].Cells[1].Text;
                    Session["IdObjeto"] = index;
                }
            }
        }

        protected void imgbtn_eliminar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                if (Session["IdObjeto"] != null)
                {
                    _carreraProfesional.IdCarreraProfesional = Convert.ToInt32(Session["IdObjeto"]);

                    using (WCF_Gimnasio.ServiceClient servicio = new WCF_Gimnasio.ServiceClient())
                    {
                        if (servicio.EliminarRegistro(ref _mensajeError, _carreraProfesional))
                        {
                            string script = "<script type='text/javascript'> smoke.alert('Se borrado correctamente el registro.', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                            ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                        }

                        else
                        {
                            string script = "<script type='text/javascript'> smoke.alert('No se pudo realizar el proceso solicitado.', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                            ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                        }
                    }
                }

                else
                {
                    string script = "<script type='text/javascript'> smoke.alert('Debe seleccionar un registro para completar la accion.', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                }
            }

            catch (Exception)
            {
                string script = "<script type='text/javascript'> smoke.alert('Se presento un incoveniente. Intente otra vez', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
            }

            _mensajeError = string.Empty;
        }

        protected void imgbtn_insertar_Aceptar_Cambios_Click(object sender, ImageClickEventArgs e)
        {
            _carreraProfesional.IdCarreraProfesional = Convert.ToInt32(txt_insertar_Id_Carrera_Profesional.Text);
            _carreraProfesional.DescripcionPosgrado = txt_insertar_Descripcion_Posgrado.Text;
            _carreraProfesional.PorcentajeAumento = Convert.ToDecimal(dplt_insertar_Porcentaje_Aumento.SelectedValue.ToString());
            _carreraProfesional.IdEstado = ((rdobtn_insertar_Estado.Checked) ? 2 : 1);

            using (WCF_Gimnasio.ServiceClient servicio = new WCF_Gimnasio.ServiceClient())
            {
                servicio.InsertarActualizarRegistro(Convert.ToBoolean(Session["TipoOperacion"]), ref _mensajeError, _carreraProfesional);
            }

            VerificarProceso(_mensajeError);
            _mensajeError = string.Empty;

            CargarDatos();
        }

        protected void imgbtn_actualizacion_Aceptar_Cambios_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                _carreraProfesional.IdCarreraProfesional = Convert.ToInt32(txt_actualizacion_Id_Carrera_Profesional.Text);
                _carreraProfesional.DescripcionPosgrado = txt_actualizacion_Descripcion_Posgrado.Text;
                _carreraProfesional.PorcentajeAumento = Convert.ToDecimal(dplt_actualizacion_Porcentaje_Aumento.SelectedValue.ToString());
                _carreraProfesional.IdEstado = ((rdobtn_actualizacion_Estado.Checked) ? 2 : 1);

                using (WCF_Gimnasio.ServiceClient servicio = new WCF_Gimnasio.ServiceClient())
                {
                    servicio.InsertarActualizarRegistro(Convert.ToBoolean(Session["TipoOperacion"]), ref _mensajeError, _carreraProfesional);
                }

                VerificarProceso(_mensajeError);
                _mensajeError = string.Empty;

                CargarDatos();
            }

            catch (Exception)
            {
                string script = "<script type='text/javascript'> smoke.alert('Se presento un incoveniente. Intente otra vez', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
            }
        }

        #endregion

    }
}